An expert system is a program or algorithm which emulates human reasoning. There are several components to an expert system. There is a user interface, a knowledge base, an inference engine and a data base. The user interface tells the user what the state of the expert system is at any particular time. A data base feeds data to the expert system. The knowledge base contains the rules that control the reasoning process. The inference engine itself actually processes the rules inside the knowledge base and actually does the reasoning.
A typical example of an expert system is in the medical field. First there is a diagnosis of a problem based upon the condition or illness of a person and his/her symptoms. Then based upon the symptoms and in response to questions that the knowledge base asks the doctor, the system will reason out a certain illness that a patient may have.
An example of an expert system used in the banking industry would be in traditional loan processing. After an applicant fills out a loan application, the data from the loan application is fed into the knowledge base, and the rules go about discerning his/her credit worthiness.
In existing systems, the knowledge bases themselves have to be "hard coded" such that the rules are static and cannot easily be changed. To be changed, a programmer must actually edit the knowledge base in such a way that the previous knowledge base may or may not be valid anymore. This editing process may introduce errors, but also introduces time constraints resulting in the bank no longer having control of the knowledge base itself. Usually the bank must hire a programmer in order to maintain control of its system.
The way an expert system works is that data is fed through the user interface. A knowledge base contains rules which interpret the data. The knowledge base has all the rules internally such that decisions are made within that knowledge base, and all processing is performed internal to the knowledge base. Therefore, a large number of programming changes are necessary if the knowledge base is to be modified. The programmer must take into consideration what the previous rules are doing, and how those rules are being processed to see what effect any change has on the system. Thus, the degree of complexity in modifying the knowledge base could result in high maintenance costs.
Accordingly, there is a need in the art for an expert system which is easily adaptable to new rules and situations.
There is a further need in the art for an expert system which is easily adaptable to changes in the user's environment, to new rules or to rules having different parameters for different periods of time.
A still further need in the art is for an expert system which is flexibly adapted to a user's changing economic environment and business operations.